package com.fdb.smcts.core.util.sdic;

import java.util.Enumeration;
import java.util.HashMap;
import java.util.Map;
import java.util.ResourceBundle;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.fdb.smcts.core.util.StringUtil;


/**
  * 本地字典项值转为外部系统字典项值
  * @author qiuyf
  * @since 2019年1月24日 上午10:15:52
  * @version 1.0
 */
public class SDicToExternal{

	private static Logger logger = LoggerFactory.getLogger(SDicToExternal.class);
	
	private static final Map<String, String> mapClient = new HashMap<>();
	
	private static boolean isInit = false;
	
	private static void init() throws Exception {
		// 获取配置文件
		try {
			ResourceBundle res = ResourceBundle.getBundle("dicToExternal");
			Enumeration<String> keys = res.getKeys();
			while (keys.hasMoreElements()) {
				String keyStr = keys.nextElement();
				String value = res.getString(keyStr);
				String[] temp = value.split("_");
				if(temp.length == 4) {
					mapClient.put(temp[0].trim()+temp[1].trim()+"_"+temp[2].trim(), temp[3].trim());
				}
			}
		} catch (Exception e) {
			logger.error("获取配置信息出错！", e);
			throw new Exception("获取配置信息出错！" + e);
		}
		isInit = true;
	}
	
	/**
	  * 通过字典项类型、本地字典项值获取外部系统字典项值
	  * @param systemId 对接系统英文简称
	  * @param opttype  字典项类型
	  * @param value    字典项值
	  * @return String
	  * @author qiuyf
	  * @since 2019年1月24日 下午2:53:29
	  * @version 1.0
	 */
	public static String getExternalSysDicVal(String systemId, String opttype, String value) throws Exception{
		if(StringUtil.isNullorBank(value)) {
			return value;
		}
		if (!isInit) {
			init();
		}
		String mapStr = systemId.trim() + opttype.trim() + "_" + value.trim();
		if(mapClient.containsKey(mapStr)) {
			return mapClient.get(mapStr);
		}
		return value;
	}
}
